<?php
##########################################
##### Autor: Yngrid Coello           #####
##### Correo: y-c-@hotmail.com       #####
##### Ult. Modif: 26/10/2011         #####
##### Pasantias de Grado - USB       #####
##### Realización del Sistema: 0Bs   #####
##########################################

class VueloForm extends BaseVueloForm
{
  public function configure()
  {
	// Asociar los campos a mostrar en el formulario
	$this->setWidgets(array(
      //'matricula'    => new sfWidgetFormPropelChoice(array('model'=> 'Aeronave','add_empty' => '--Seleccione una Matricula--','key_method' => 'getMatricula')),
	  'numVuelo'  => new sfWidgetFormInput(),
          'tipo'      => new sfWidgetFormChoice(array('choices' => array('- Seleccione -','Nacional'=>'Nacional','Internacional'=>'Internacional'))),
	  'origen'    => new sfWidgetFormPropelChoice(array('model' => 'Estacion', 'add_empty' => '- Seleccione -')),
	  'destino'   => new sfWidgetFormPropelChoice(array('model' => 'Estacion', 'add_empty' => '- Seleccione -')),
    ));
	
	// Cambiar las etiquetas de las columnas de la tabla de BD
	$this->widgetSchema->setLabels(array(
	  'numVuelo'    => 'N&uacute;mero',
	));

	// Setear los errores que aparecen en el formulario
	$this->setValidators(array(
          'numVuelo' => new sfValidatorInteger(array('min' => 0), array('required' => 'Debe especificar el n&uacute;mero del vuelo.','min' => 'Valor no v&aacute;lido. Por favor inserte un numero de vuelo mayor o igual a %min%',)),
          'tipo'   => new sfValidatorChoice(array('choices' => array('Nacional','Internacional')), array('invalid' => 'Debe Especificar el tipo de Vuelo')),
	  'origen'   => new sfValidatorPropelChoice(array('model' => 'Estacion', 'column' => 'codigo', 'required'=>true),array('required'=>'Debe especificar la Estación de origen del vuelo')),
	  'destino'   => new sfValidatorPropelChoice(array('model' => 'Estacion', 'column' => 'codigo', 'required'=>true),array('required'=>'Debe especificar la Estación de destino del vuelo')),
	));
        
       $this->mergePostValidator(new sfValidatorSchemaCompare('origen', sfValidatorSchemaCompare::NOT_EQUAL, 'destino',array(), array('invalid' => 'El Destino del vuelo debe ser distinto al origen'))); 
	
	// Desasociar el id(autoincremental) del formulario
	//unset($this->validatorSchema['id']);
	//unset($this->widgetSchema['id']);
	
	// Solucionar problemas con el token CRSF
	$this->widgetSchema->setNameFormat('Vuelo[%s]');
	$this->errorSchema = new sfValidatorErrorSchema($this->validatorSchema);

  }
}
